<?php
/**
 * Created by PhpStorm.
 * User: wodrow
 * Date: 17-12-12
 * Time: 上午11:48
 */

namespace common\components\tools;


class Random
{
    public static function RandomCode($leng = 12, $type = "all") {
        $leng = $leng > 0 ? intval($leng) : 12;
        $str = "";
        if ($type == 'num') {
            for ($i = 0; $i < $leng; $i++) {
                mt_srand(doubleval(microtime() * 1000000));
                $str.=chr(mt_rand(48, 57));
            }
        } elseif ($type == 'capital') {
            for ($i = 0; $i < $leng; $i++) {
                mt_srand(doubleval(microtime() * 1000000));
                $str.=chr(mt_rand(65, 90));
            }
        } elseif ($type == 'lower') {
            for ($i = 0; $i < $leng; $i++) {
                mt_srand(doubleval(microtime() * 1000000));
                $str.=chr(mt_rand(97, 122));
            }
        } elseif ($type == 'time') {
            $str = date('YmdHis');
            $str.=self::RandomCode($leng, 'num');
        } else {
            $char = array(
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8",
                "9",
                "0",
                "a",
                "b",
                "c",
                "d",
                "e",
                "f",
                "g",
                "h",
                "i",
                "j",
                "k",
                "l",
                "m",
                "n",
                "o",
                "p",
                "q",
                "r",
                "s",
                "t",
                "u",
                "v",
                "w",
                "x",
                "y",
                "z",
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G",
                "H",
                "I",
                "J",
                "K",
                "L",
                "M",
                "N",
                "O",
                "P",
                "Q",
                "R",
                "S",
                "T",
                "U",
                "V",
                "W",
                "X",
                "Y",
                "Z"
            );
            shuffle($char);
            $n = count($char) - 1;
            $str = "";
            for ($i = 0; $i < $leng; $i++) {
                mt_srand(doubleval(microtime() * 1000000));
                $m = mt_rand(0, $n);
                $str.=$char[$m];
            }
        }
        return $str;
    }
}